package com.dhcc.DRGsHosp.application;


import java.util.List;
import java.util.Map;

import com.dhcc.DRGsHosp.core.domain.ClinicGroup;

public interface ClinicGroupApplication {

	public ClinicGroup getClinicGroup(Long id);
	
	public void saveClinicGroup(Map<String,Object> json);
	
	public void removeClinicGroup(ClinicGroup clinicGroup);
	
	public List<ClinicGroup> findAllClinicGroup();
	

	/**
	 * @methodname    :findAllClinicGroup
	 * @description   : 
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年5月15日
	 */
	public List<ClinicGroup> findAllClinicGroup(ClinicGroup entity);

	/**
	 * 
	    * @Title: findClinicGroupsByDepCode  
	    * @Description: TODO(查询主诊组)  
	    * @param  depCode 科室编码
	    * @return String    返回类型  
	    * @throws
	 */
	public String findClinicGroupsByDepCode(String depCode);

	/**
	 * @methodname    :isGroupCodeExist
	 * @description   : 
	 * @param         :
	 * @author        :fulianxia
	 * @return        :
	 * @date          :2015年7月6日
	 */
	public Boolean isGroupCodeExist(String groupCode);
	
	/**
	 *  判断顺序编码是否重复
	 *  isGroupOrderExist.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param groupOrder
	 *  @param groupCode
	 *  @return 
	 *  @Date:2018年3月12日下午2:08:43
	 */
	public Boolean isGroupOrderExist(String groupOrder, String groupCode);
	
	/**
	 * 根据条件查询
	 * @param sql
	 * @param params
	 * @return
	 */
	public List<Map<String,Object>> excuteQuery(String sql,Map<String,Object> params) ;
	
	/**
	 *  执行查询方法
	 *  excuteUpdate.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param sql
	 *  @param params
	 *  @return 
	 *  @Date:2017年12月15日下午5:07:27
	 */
	public Integer excuteUpdate(String sql,Map<String,Object> params) ;
	
	public void creatClinicGroup(ClinicGroup clinicGroup) ;
	
	/**
	 *  查询首页表中已存编码
	 *  findAllDoctorCodeInIpinfo.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @return 
	 *  @Date:2017年11月17日下午1:41:18
	 */
	public List<String> findAllDoctorCodeInIpinfo() ;
	
	/**
	 *  用新编码更新旧的编码
	 *  updateDoctorCodeInIpinfo.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param oldCode
	 *  @param newCode
	 *  @return 
	 *  @Date:2017年11月17日下午2:43:08
	 */
	public void updateDoctorCodeInIpinfo(String oldCode,String newCode) ;
	/**
	 *  更新医师表编码
	 *  updateDoctorCodeInClinicGroup.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param oldCode
	 *  @param newCode 
	 *  @Date:2017年11月17日下午3:11:41
	 */
	public void updateDoctorCodeInClinicGroup(String oldCode,String newCode) ;
	/**
	 *   查询医师信息（多科室）
	 *  queryDoctorByMultiDep.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param outDepCode
	 *  @param docType
	 *  @param doctorName
	 *  @return 
	 *  @Date:2017年11月28日下午2:13:41
	 */
	public List<Map<String, Object>> queryDoctorByMultiDep(String outDepCode, String docType, String doctorName);

	/**
	 *   查询医师编码为空的病例数
	 *  findCaseCntDocCodeIsNull.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param string
	 *  @param params
	 *  @return 
	 *  @Date:2017年12月15日上午10:18:38
	 */
	public List<Map<String,Object>> findCaseCntDocCodeIsNull(String string, Map<String, Object> params);
	
	/**
	 *  同步首页和医师表中的医师信息
	 *  updateIpinfoAndClinicGroup.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param dataFrom
	 *  @param dataTo
	 *  @return 
	 *  @Date:2017年12月15日上午10:32:28
	 */
	public int[] updateIpinfoAndClinicGroup(String[] sql);
	
	/**
	 * 
	 *  根据医师编码跟新医师信息
	 *  updateClinicGroupByDocCode.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param clinicGroup 医师对象
	 *  @param flag 是否更新所有字段 true跟新，false不全部更新
	 *  @return 
	 *  @Date:2017年12月18日下午3:59:47
	 */
	public int updateClinicGroupByDocCode(ClinicGroup clinicGroup,boolean flag) ;
	
	/**
	 *  根据主键更新首页医师信息
	 *  updateDoctorCodeById.  
	 *  @Description：
	 *  @Author ChenHanlin
	 *  @param obj 
	 *  @Date:2018年3月12日下午10:39:07
	 */
	public void updateDoctorCodeById(Object obj) ;

	/**
	 *  
	 *  getMaxOrder  
	 *  @Description：查找最大医师序号
	 *  @Author fulianxia
	 *  @param  
	 *  @Date:2018年3月26日
	 */
	public int getMaxOrder();

}

